package com.gmscosmo.janus.echarts;

import java.util.Arrays;
import java.util.List;

public class Series {
    private String type = "graph";
    private String layout = "none";
    private int symbolSize = 50;
    private boolean roam =  true;
    private Label label;
    private String[] edgeSymbol = new String[]{"circle", "arrow"};
    private int[] edgeSymbolSize = new int[]{4,10};
    private EdgeLabel edgeLabel;
    private List<Point> data;
    private List<Link> links;
    private LineStyle lineStyle;

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getLayout() {
        return layout;
    }

    public void setLayout(String layout) {
        this.layout = layout;
    }

    public int getSymbolSize() {
        return symbolSize;
    }

    public void setSymbolSize(int symbolSize) {
        this.symbolSize = symbolSize;
    }

    public boolean isRoam() {
        return roam;
    }

    public void setRoam(boolean roam) {
        this.roam = roam;
    }

    public Label getLabel() {
        return label;
    }

    public void setLabel(Label label) {
        this.label = label;
    }

    public String[] getEdgeSymbol() {
        return edgeSymbol;
    }

    public void setEdgeSymbol(String[] edgeSymbol) {
        this.edgeSymbol = edgeSymbol;
    }

    public int[] getEdgeSymbolSize() {
        return edgeSymbolSize;
    }

    public void setEdgeSymbolSize(int[] edgeSymbolSize) {
        this.edgeSymbolSize = edgeSymbolSize;
    }

    public EdgeLabel getEdgeLabel() {
        return edgeLabel;
    }

    public void setEdgeLabel(EdgeLabel edgeLabel) {
        this.edgeLabel = edgeLabel;
    }

    public List<Point> getData() {
        return data;
    }

    public void setData(List<Point> data) {
        this.data = data;
    }

    public List<Link> getLinks() {
        return links;
    }

    public void setLinks(List<Link> links) {
        this.links = links;
    }

    public LineStyle getLineStyle() {
        return lineStyle;
    }

    public void setLineStyle(LineStyle lineStyle) {
        this.lineStyle = lineStyle;
    }

    @Override
    public String toString() {
        return "{" +'\n'+
                "  type:'" + type + "'"+",\n"+
                "  layout:'" + layout +"'"+ ",\n"+
                "  symbolSize:" + symbolSize +",\n"+
                "  roam:" + roam +",\n"+
                "  label:" + label +",\n"+
                "  edgeSymbol:" + "[\"circle\", \"arrow\"]" +",\n"+
                "  edgeSymbolSize:" + Arrays.toString(edgeSymbolSize) +",\n"+
                "  edgeLabel:" + edgeLabel +",\n"+
                "  data:" + data +",\n"+
                "  links:" + links +",\n"+
                "  lineStyle:" + lineStyle +"\n"+
                '}';
    }
}
